package com.ruoyi.report_tg.domain.vo;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Date;

import cn.hutool.core.util.ObjUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.utils.BigDecimalUtil;
import com.ruoyi.report_tg.domain.TdjsjlbBaDetail;
import lombok.Data;
import java.util.Date;
import java.util.List;


/**
 * 土的击实记录视图对象 report_tg_tdjsjlb_bs_info
 *
 * @author zyb
 * @date 2024-05-24
 */
@Data
@ExcelIgnoreUnannotated
public class TdjsjlbBsInfoVo extends ExcelGeneralVo{

    private static final long serialVersionUID = 1L;

    /**
     * 画图所需的点
     */
    private List<GeneralCharDataVo> chartData;

    /**
     * 一份excel表格的唯一id(其他的excel主表，都应有此字段）
     */
    @ExcelProperty(value = "一份excel表格的唯一id(其他的excel主表，都应有此字段）")
    private Long excelId;

    /**
     * 共几页
     */
    @ExcelProperty(value = "共几页")
    private Long totalPage;

    /**
     * 第几页
     */
    @ExcelProperty(value = "第几页")
    private Long page;

    /**
     * 记录编号
     */
    @ExcelProperty(value = "记录编号")
    private String jilbh;

    /**
     * 检测单位名称
     */
    @ExcelProperty(value = "检测单位名称")
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @ExcelProperty(value = "工程部位/用途")
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @ExcelProperty(value = "样品名称")
    private String yangpmc;

    /**
     * 样品编号
     */
    @ExcelProperty(value = "样品编号")
    private String yangpbh;

    /**
     * 样品数量
     */
    @ExcelProperty(value = "样品数量")
    private String yangpsl;

    /**
     * 样品状态
     */
    @ExcelProperty(value = "样品状态")
    private String yangpzt;

    /**
     * 样品时间
     */
    @ExcelProperty(value = "样品时间")
    private String yangpsj;

    /**
     * 试验检测日期
     */
    @ExcelProperty(value = "试验检测日期")
    private String shiyjcrq;

    /**
     * 试验条件温度
     */
    @ExcelProperty(value = "试验条件温度")
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @ExcelProperty(value = "试验条件湿度")
    private String shiytjsd;

    /**
     * 检测依据
     */
    @ExcelProperty(value = "检测依据")
    private String jiancyj;

    /**
     * 判定依据
     */
    @ExcelProperty(value = "判定依据")
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @ExcelProperty(value = "主要仪器设备名称及编号")
    private String zhuyyqsbmcjbh;

    /**
     * 附加声明
     */
    @ExcelProperty(value = "附加声明")
    private String fujsm;

    /**
     * 最大干密度
     */
    @ExcelProperty(value = "最大干密度")
    private BigDecimal zuidgmd;

    /**
     * 最佳含水率
     */
    @ExcelProperty(value = "最佳含水率")
    private BigDecimal zuijhsl;

    /**
     * 击锤质量
     */
    @ExcelProperty(value = "击锤质量")
    private BigDecimal jiczl;

    /**
     * 每层击数
     */
    @ExcelProperty(value = "每层击数")
    private BigDecimal meicjs;

    /**
     * 落距
     */
    @ExcelProperty(value = "落距")
    private BigDecimal luoj;

    /**
     * 颗粒含量＞5mm
     */
    @ExcelProperty(value = "颗粒含量＞5mm")
    private BigDecimal kelhl5;

    /**
     * 详细表
     */
    List<TdjsjlbBaDetailVo> baDetailVos;

    public TdjsjlbBsInfoVo() {
        // 默认 5次
        baDetailVos = new ArrayList<>(5);
        for (long i = 1; i <= 5L; i++) {
            baDetailVos.add(new TdjsjlbBaDetailVo());
        }
    }

    /**
     * 设备ids
     */
    private String shebIds;

    public void setZuidgmd(BigDecimal zuidgmd) {
        this.zuidgmd = BigDecimalUtil.stpTrailZero(zuidgmd);
    }

    public void setZuijhsl(BigDecimal zuijhsl) {
        this.zuijhsl = ObjUtil.isNull(zuijhsl) ? null : BigDecimalUtil.stpTrailZero(zuijhsl).setScale(1, RoundingMode.HALF_EVEN);
    }

    public void setJiczl(BigDecimal jiczl) {
        this.jiczl = BigDecimalUtil.stpTrailZero(jiczl);
    }

    public void setMeicjs(BigDecimal meicjs) {
        this.meicjs = BigDecimalUtil.stpTrailZero(meicjs);
    }

    public void setLuoj(BigDecimal luoj) {
        this.luoj = BigDecimalUtil.stpTrailZero(luoj);
    }

    public void setKelhl5(BigDecimal kelhl5) {
        this.kelhl5 = BigDecimalUtil.stpTrailZero(kelhl5);
    }
}
